iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
Security

30 天成為 IAM 達人系列 第 22

Day 22: 身份安全威脅:SQL Injection 風險

  • 分享至 

  • xImage
  •  

SQL 注入(SQL Injection)攻擊,
一直是 OWASP 十大攻擊裡排行前段班的攻擊手法,
目的係希望透過如果該網站表單的輸入未得到驗證保護,
則將導致資料庫執行非預期的 SQL 代碼,從而使駭客獲得關鍵資料。

透過 SQL Injection 的機制,可以達到幾種不同效果:

  1. 繞過身份認證機制
  2. 繞過身份授權機制
  3. 敏感資訊洩漏(Disclosure)
  4. 破壞資料完整性(Integrity)
  5. 遠端執行代碼
    每種都可以讓資料庫處於高度風險的存取操作。

SQL Injection 範例

透過 SQL Injection 的手法,
攻擊者可以對資料庫進行新增、刪除、修改的操作,
例如更新 Table 資料、新增行列(Row)資料、
確認是否有特定 Table 存在、刪除特定 Table,
或要求回傳更多非預期操作下的敏感或內部資料。

SQL Injection 種類

隨著 SQL Injection 手法也有不同種類,像是:

  1. In-band SQL injection
    攻擊者使用使用相同的通訊管道與資料庫互動,
    最常見的 SQL 攻擊種類,透過 Error-based SQL,
    或是 UNION SQL injection 方式執行。

  2. Inferential SQL injection
    在推斷注入裡,透過向資料庫發送惡意 SQL 查詢來達到,
    因為回傳的結果一般是布林形式(True/False),
    攻擊者僅能使用真或假結果來決定資料庫和資料的結構。

  3. Out-of-Band Injection
    攻擊者使用不同的通訊管道,
    例如資料庫電子郵件功能或檔案傳入功能來執行攻擊,
    這類型的攻擊難度很高,因為攻擊者需要與伺服器通訊,
    同時掌握 Web 應用程式使用的資料庫伺服器的相關功能等。

SQL Injection 防範策略

SQL Injection 牽涉 Web 應用程式與資料庫互動機制,
也包含系統本身有無直接弱點(Vulnerability)可被利用,
因此防範 SQL Injection 也會有很多做法:

  1. 資料庫設定最小權限管理
  2. 禁用預設指令、Table 或公用帳號
  3. 防止錯誤訊息揭露資料庫組態資訊
  4. 使用 IDS/WAF 監控應用網站程式流量
  5. 使用適當的權限管控與資料庫連線
  6. 設計輸入驗證機制與確認
  7. 適時執行滲透測試與黑箱測試

小結

身份安全的第一道防線,即在前端系統與最終用戶互動過程,
良好的輸入、保護與驗證機制,
可以有效降低因 SQL Injection 導致的資料外洩問題,
同時也可以確保身份資訊降低冒用情形或風險。


上一篇
Day 21: 身份安全威脅:社交工程威脅
下一篇
Day 23: 身份安全威脅:APT 漏洞攻擊
系列文
30 天成為 IAM 達人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言